<!doctype html><html lang=en><head><meta charset=utf-8><title>nginx vhost traffic status monitor</title> <style>body{background:white;color:black;font-family:Helvetica,Arial,sans-serif}h1{margin:.5em 0 0 0}h2{margin:.8em 0 .3em 0}h3{margin:.5em 0 .3em 0}table{font-size:.8em;margin:.5em 0;border-collapse:collapse;border-bottom:1px #DED solid}thead th{font-size:1em;background:#DED;padding:.1em .3em;border:.2em solid #FFF}tbody tr.odd{background:#f5f5f5}tbody th{text-align:left}tbody td{height:1.2em;text-align:right}tbody td.key{font-size:1em;background:#DED;padding:.1em .3em;border:.2em solid #FFF}div.update{margin-top:32px;color:#696969}div.footer{margin-top:16px}a:link{color:#66f;font-size:.7em}a:visited{color:#66f;font-size:.7em}a:active{color:#222;font-size:.7em}a:hover{color:#000;background-color:#e0e8ff;font-size:.7em}.flag{width:16px;height:11px;background:url("") no-repeat}.flag.flag-ad{background-position:-16px 0}.flag.flag-ae{background-position:-32px 0}.flag.flag-af{background-position:-48px 0}.flag.flag-ag{background-position:-64px 0}.flag.flag-ai{background-position:-80px 0}.flag.flag-al{background-position:-96px 0}.flag.flag-am{background-position:-112px 0}.flag.flag-an{background-position:-128px 0}.flag.flag-ao{background-position:-144px 0}.flag.flag-ar{background-position:-160px 0}.flag.flag-as{background-position:-176px 0}.flag.flag-at{background-position:-192px 0}.flag.flag-au{background-position:-208px 0}.flag.flag-aw{background-position:-224px 0}.flag.flag-az{background-position:-240px 0}.flag.flag-ba{background-position:0 -11px}.flag.flag-bb{background-position:-16px -11px}.flag.flag-bd{background-position:-32px -11px}.flag.flag-be{background-position:-48px -11px}.flag.flag-bf{background-position:-64px -11px}.flag.flag-bg{background-position:-80px -11px}.flag.flag-bh{background-position:-96px -11px}.flag.flag-bi{background-position:-112px -11px}.flag.flag-bj{background-position:-128px -11px}.flag.flag-bm{background-position:-144px -11px}.flag.flag-bn{background-position:-160px -11px}.flag.flag-bo{background-position:-176px -11px}.flag.flag-br{background-position:-192px -11px}.flag.flag-bs{background-position:-208px -11px}.flag.flag-bt{background-position:-224px -11px}.flag.flag-bv{background-position:-240px -11px}.flag.flag-bw{background-position:0 -22px}.flag.flag-by{background-position:-16px -22px}.flag.flag-bz{background-position:-32px -22px}.flag.flag-ca{background-position:-48px -22px}.flag.flag-catalonia{background-position:-64px -22px}.flag.flag-cd{background-position:-80px -22px}.flag.flag-cf{background-position:-96px -22px}.flag.flag-cg{background-position:-112px -22px}.flag.flag-ch{background-position:-128px -22px}.flag.flag-ci{background-position:-144px -22px}.flag.flag-ck{background-position:-160px -22px}.flag.flag-cl{background-position:-176px -22px}.flag.flag-cm{background-position:-192px -22px}.flag.flag-cn{background-position:-208px -22px}.flag.flag-co{background-position:-224px -22px}.flag.flag-cr{background-position:-240px -22px}.flag.flag-cu{background-position:0 -33px}.flag.flag-cv{background-position:-16px -33px}.flag.flag-cw{background-position:-32px -33px}.flag.flag-cy{background-position:-48px -33px}.flag.flag-cz{background-position:-64px -33px}.flag.flag-de{background-position:-80px -33px}.flag.flag-dj{background-position:-96px -33px}.flag.flag-dk{background-position:-112px -33px}.flag.flag-dm{background-position:-128px -33px}.flag.flag-do{background-position:-144px -33px}.flag.flag-dz{background-position:-160px -33px}.flag.flag-ec{background-position:-176px -33px}.flag.flag-ee{background-position:-192px -33px}.flag.flag-eg{background-position:-208px -33px}.flag.flag-eh{background-position:-224px -33px}.flag.flag-england{background-position:-240px -33px}.flag.flag-er{background-position:0 -44px}.flag.flag-es{background-position:-16px -44px}.flag.flag-et{background-position:-32px -44px}.flag.flag-eu{background-position:-48px -44px}.flag.flag-fi{background-position:-64px -44px}.flag.flag-fj{background-position:-80px -44px}.flag.flag-fk{background-position:-96px -44px}.flag.flag-fm{background-position:-112px -44px}.flag.flag-fo{background-position:-128px -44px}.flag.flag-fr{background-position:-144px -44px}.flag.flag-ga{background-position:-160px -44px}.flag.flag-gb{background-position:-176px -44px}.flag.flag-gd{background-position:-192px -44px}.flag.flag-ge{background-position:-208px -44px}.flag.flag-gf{background-position:-224px -44px}.flag.flag-gg{background-position:-240px -44px}.flag.flag-gh{background-position:0 -55px}.flag.flag-gi{background-position:-16px -55px}.flag.flag-gl{background-position:-32px -55px}.flag.flag-gm{background-position:-48px -55px}.flag.flag-gn{background-position:-64px -55px}.flag.flag-gp{background-position:-80px -55px}.flag.flag-gq{background-position:-96px -55px}.flag.flag-gr{background-position:-112px -55px}.flag.flag-gs{background-position:-128px -55px}.flag.flag-gt{background-position:-144px -55px}.flag.flag-gu{background-position:-160px -55px}.flag.flag-gw{background-position:-176px -55px}.flag.flag-gy{background-position:-192px -55px}.flag.flag-hk{background-position:-208px -55px}.flag.flag-hm{background-position:-224px -55px}.flag.flag-hn{background-position:-240px -55px}.flag.flag-hr{background-position:0 -66px}.flag.flag-ht{background-position:-16px -66px}.flag.flag-hu{background-position:-32px -66px}.flag.flag-ic{background-position:-48px -66px}.flag.flag-id{background-position:-64px -66px}.flag.flag-ie{background-position:-80px -66px}.flag.flag-il{background-position:-96px -66px}.flag.flag-im{background-position:-112px -66px}.flag.flag-in{background-position:-128px -66px}.flag.flag-io{background-position:-144px -66px}.flag.flag-iq{background-position:-160px -66px}.flag.flag-ir{background-position:-176px -66px}.flag.flag-is{background-position:-192px -66px}.flag.flag-it{background-position:-208px -66px}.flag.flag-je{background-position:-224px -66px}.flag.flag-jm{background-position:-240px -66px}.flag.flag-jo{background-position:0 -77px}.flag.flag-jp{background-position:-16px -77px}.flag.flag-ke{background-position:-32px -77px}.flag.flag-kg{background-position:-48px -77px}.flag.flag-kh{background-position:-64px -77px}.flag.flag-ki{background-position:-80px -77px}.flag.flag-km{background-position:-96px -77px}.flag.flag-kn{background-position:-112px -77px}.flag.flag-kp{background-position:-128px -77px}.flag.flag-kr{background-position:-144px -77px}.flag.flag-kurdistan{background-position:-160px -77px}.flag.flag-kw{background-position:-176px -77px}.flag.flag-ky{background-position:-192px -77px}.flag.flag-kz{background-position:-208px -77px}.flag.flag-la{background-position:-224px -77px}.flag.flag-lb{background-position:-240px -77px}.flag.flag-lc{background-position:0 -88px}.flag.flag-li{background-position:-16px -88px}.flag.flag-lk{background-position:-32px -88px}.flag.flag-lr{background-position:-48px -88px}.flag.flag-ls{background-position:-64px -88px}.flag.flag-lt{background-position:-80px -88px}.flag.flag-lu{background-position:-96px -88px}.flag.flag-lv{background-position:-112px -88px}.flag.flag-ly{background-position:-128px -88px}.flag.flag-ma{background-position:-144px -88px}.flag.flag-mc{background-position:-160px -88px}.flag.flag-md{background-position:-176px -88px}.flag.flag-me{background-position:-192px -88px}.flag.flag-mg{background-position:-208px -88px}.flag.flag-mh{background-position:-224px -88px}.flag.flag-mk{background-position:-240px -88px}.flag.flag-ml{background-position:0 -99px}.flag.flag-mm{background-position:-16px -99px}.flag.flag-mn{background-position:-32px -99px}.flag.flag-mo{background-position:-48px -99px}.flag.flag-mp{background-position:-64px -99px}.flag.flag-mq{background-position:-80px -99px}.flag.flag-mr{background-position:-96px -99px}.flag.flag-ms{background-position:-112px -99px}.flag.flag-mt{background-position:-128px -99px}.flag.flag-mu{background-position:-144px -99px}.flag.flag-mv{background-position:-160px -99px}.flag.flag-mw{background-position:-176px -99px}.flag.flag-mx{background-position:-192px -99px}.flag.flag-my{background-position:-208px -99px}.flag.flag-mz{background-position:-224px -99px}.flag.flag-na{background-position:-240px -99px}.flag.flag-nc{background-position:0 -110px}.flag.flag-ne{background-position:-16px -110px}.flag.flag-nf{background-position:-32px -110px}.flag.flag-ng{background-position:-48px -110px}.flag.flag-ni{background-position:-64px -110px}.flag.flag-nl{background-position:-80px -110px}.flag.flag-no{background-position:-96px -110px}.flag.flag-np{background-position:-112px -110px}.flag.flag-nr{background-position:-128px -110px}.flag.flag-nu{background-position:-144px -110px}.flag.flag-nz{background-position:-160px -110px}.flag.flag-om{background-position:-176px -110px}.flag.flag-pa{background-position:-192px -110px}.flag.flag-pe{background-position:-208px -110px}.flag.flag-pf{background-position:-224px -110px}.flag.flag-pg{background-position:-240px -110px}.flag.flag-ph{background-position:0 -121px}.flag.flag-pk{background-position:-16px -121px}.flag.flag-pl{background-position:-32px -121px}.flag.flag-pm{background-position:-48px -121px}.flag.flag-pn{background-position:-64px -121px}.flag.flag-pr{background-position:-80px -121px}.flag.flag-ps{background-position:-96px -121px}.flag.flag-pt{background-position:-112px -121px}.flag.flag-pw{background-position:-128px -121px}.flag.flag-py{background-position:-144px -121px}.flag.flag-qa{background-position:-160px -121px}.flag.flag-re{background-position:-176px -121px}.flag.flag-ro{background-position:-192px -121px}.flag.flag-rs{background-position:-208px -121px}.flag.flag-ru{background-position:-224px -121px}.flag.flag-rw{background-position:-240px -121px}.flag.flag-sa{background-position:0 -132px}.flag.flag-sb{background-position:-16px -132px}.flag.flag-sc{background-position:-32px -132px}.flag.flag-scotland{background-position:-48px -132px}.flag.flag-sd{background-position:-64px -132px}.flag.flag-se{background-position:-80px -132px}.flag.flag-sg{background-position:-96px -132px}.flag.flag-sh{background-position:-112px -132px}.flag.flag-si{background-position:-128px -132px}.flag.flag-sk{background-position:-144px -132px}.flag.flag-sl{background-position:-160px -132px}.flag.flag-sm{background-position:-176px -132px}.flag.flag-sn{background-position:-192px -132px}.flag.flag-so{background-position:-208px -132px}.flag.flag-somaliland{background-position:-224px -132px}.flag.flag-sr{background-position:-240px -132px}.flag.flag-ss{background-position:0 -143px}.flag.flag-st{background-position:-16px -143px}.flag.flag-sv{background-position:-32px -143px}.flag.flag-sx{background-position:-48px -143px}.flag.flag-sy{background-position:-64px -143px}.flag.flag-sz{background-position:-80px -143px}.flag.flag-tc{background-position:-96px -143px}.flag.flag-td{background-position:-112px -143px}.flag.flag-tf{background-position:-128px -143px}.flag.flag-tg{background-position:-144px -143px}.flag.flag-th{background-position:-160px -143px}.flag.flag-tibet{background-position:-176px -143px}.flag.flag-tj{background-position:-192px -143px}.flag.flag-tk{background-position:-208px -143px}.flag.flag-tl{background-position:-224px -143px}.flag.flag-tm{background-position:-240px -143px}.flag.flag-tn{background-position:0 -154px}.flag.flag-to{background-position:-16px -154px}.flag.flag-tr{background-position:-32px -154px}.flag.flag-tt{background-position:-48px -154px}.flag.flag-tv{background-position:-64px -154px}.flag.flag-tw{background-position:-80px -154px}.flag.flag-tz{background-position:-96px -154px}.flag.flag-ua{background-position:-112px -154px}.flag.flag-ug{background-position:-128px -154px}.flag.flag-um{background-position:-144px -154px}.flag.flag-us{background-position:-160px -154px}.flag.flag-uy{background-position:-176px -154px}.flag.flag-uz{background-position:-192px -154px}.flag.flag-va{background-position:-208px -154px}.flag.flag-vc{background-position:-224px -154px}.flag.flag-ve{background-position:-240px -154px}.flag.flag-vg{background-position:0 -165px}.flag.flag-vi{background-position:-16px -165px}.flag.flag-vn{background-position:-32px -165px}.flag.flag-vu{background-position:-48px -165px}.flag.flag-wales{background-position:-64px -165px}.flag.flag-wf{background-position:-80px -165px}.flag.flag-ws{background-position:-96px -165px}.flag.flag-xk{background-position:-112px -165px}.flag.flag-ye{background-position:-128px -165px}.flag.flag-yt{background-position:-144px -165px}.flag.flag-za{background-position:-160px -165px}.flag.flag-zanzibar{background-position:-176px -165px}.flag.flag-zm{background-position:-192px -165px}.flag.flag-zw{background-position:-208px -165px}</style></head><body><h1> Nginx Vhost Traffic Status</h1><div id=monitor></div><div id=update class=update> <strong>update interval:</strong> <select id=refresh onchange=vtsSetInterval(this.value*1000)><option value=1>1</option><option value=2>2</option><option value=3>3</option><option value=4>4</option><option value=5>5</option><option value=6>6</option><option value=7>7</option><option value=8>8</option> </select> <strong>sec</strong></div><div id=footer class=footer> <a href={{uri}}/format/json id=jsonUri><strong>JSON</strong></a> | <a href=https://github.com/vozlt/nginx-module-vts><strong>GITHUB</strong></a></div> <script>String.prototype.format=function(){var b=0,a=arguments;return this.replace(/{}/g,function(){return typeof a[b]!="undefined"?a[b++]:""})};var vtsStatusURI="{{uri}}/format/json",vtsUpdateInterval=1000,vtsUpdate;var vtsStatusVars={titles:{main:"Server main",server:"Server zones",filter:"Filters",upstream:"Upstreams",cache:"Caches"},ids:{main:"mainZones",server:"serverZones",filter:"filterZones",upstream:"upstreamZones",cache:"cacheZones"}};var aPs=(function(){var a=[];var b={last:undefined,period:undefined};return{getValue:function(c,d){if(typeof a[c]==="undefined"){a[c]=d;return"n/a"}else{var e=d-a[c];a[c]=d;return Math.floor(e*1000/b.period)}},refresh:function(c){b.period=c-b.last;b.last=c}}})();function mTh(b){var a=1000,c=60,f=c*c,g=f*24,l="";if(b<a){return b+"ms"}if(b<(a*c)){return Math.floor(b/a)+"."+Math.floor((b%a)/10)+"s"}var k=Math.floor(b/(g*a));if(k){l+=k+"d "}var i=Math.floor((b%(g*a))/(f*a));if(k||i){l+=i+"h "}var e=Math.floor(((b%(g*a))%(f*a))/(c*a));if(k||i||e){l+=e+"m "}var j=Math.floor((((b%(g*a))%(f*a))%(c*a))/a);return l+j+"s"}function bTh(a){var c=1024;if(typeof a!=="number"){return a}if(a<c){return a+" B"}if(a<(c*c)){return(a/c).toFixed(1)+" KiB"}if(a<(c*c*c)){return(a/(c*c)).toFixed(1)+" MiB"}if(a<(c*c*c*c)){return(a/(c*c*c)).toFixed(2)+" GiB"}return(a/(c*c*c*c)).toFixed(6)+" TiB"}function sTh(a,e){var c;if(!a&&!e){c="up"}else{if(e){c="down"}else{c="backup"}}return c}function sHe(b,a){var c=b.split(" ");return"<"+b+">"+(a)+"</"+c[0]+">"}function aHe(c,a){var b;var d="";if(Object.prototype.toString.call(a)==="[object Array]"){for(b=0;b<a.length;b++){d+=sHe(c,a[b])}}else{d=sHe(c,a)}return d}function templateServerHeader(a){var b=[];b[0]="{}{}{}{}".format(aHe('th rowspan="2"',"Zone"),aHe('th colspan="3"',"Requests"),aHe('th colspan="6"',"Responses"),aHe('th colspan="4"',"Traffic"));if(a){b[0]="{}{}".format(b[0],aHe('th colspan="9"',"Cache"))}b[1]=aHe("th",["Total","Req/s","Time","1xx","2xx","3xx","4xx","5xx","Total","Sent","Rcvd","Sent/s","Rcvd/s"]);if(a){b[1]="{}{}".format(b[1],aHe("th",["Miss","Bypass","Expired","Stale","Updating","Revalidated","Hit","Scarce","Total"]))}return aHe("thead","{}{}".format(aHe("tr",b[0]),aHe("tr",b[1])))}function templateUpstreamHeader(){var a=[];a[0]="{}{}{}{}{}{}{}{}{}".format(aHe('th rowspan="2"',"Server"),aHe('th rowspan="2"',"State"),aHe('th rowspan="2"',"Response Time"),aHe('th rowspan="2"',"Weight"),aHe('th rowspan="2"',"MaxFails"),aHe('th rowspan="2"',"FailTimeout"),aHe('th colspan="3"',"Requests"),aHe('th colspan="6"',"Responses"),aHe('th colspan="4"',"Traffic"));a[1]=aHe("th",["Total","Req/s","Time","1xx","2xx","3xx","4xx","5xx","Total","Sent","Rcvd","Sent/s","Rcvd/s"]);return aHe("thead","{}{}".format(aHe("tr",a[0]),aHe("tr",a[1])))}function templateCacheHeader(){var a=[];a[0]="{}{}{}{}".format(aHe('th rowspan="2"',"Zone"),aHe('th colspan="2"',"Size"),aHe('th colspan="4"',"Traffic"),aHe('th colspan="9"',"Cache"));a[1]=aHe("th",["Capacity","Used","Sent","Rcvd","Sent/s","Rcvd/s","Miss","Bypass","Expired","Stale","Updating","Revalidated","Hit","Scarce","Total"]);return aHe("thead","{}{}".format(aHe("tr",a[0]),aHe("tr",a[1])))}function templateMainZone(d){var f="";var c="";var a="";var e=[];var b=[];e[0]="{}{}{}{}{}{}".format(aHe('th rowspan="2"',"Host"),aHe('th rowspan="2"',"Version"),aHe('th rowspan="2"',"Uptime"),aHe('th colspan="4"',"Connections"),aHe('th colspan="4"',"Requests"),aHe('th colspan="4"',"Shared memory"));e[1]=aHe("th",["active","reading","writing","waiting","accepted","handled","Total","Req/s","name","maxSize","usedSize","usedNode"]);c=aHe("thead","{}{}".format(aHe("tr",e[0]),aHe("tr",e[1])));b[0]=aHe("td",[aHe("strong",d.hostName),d.nginxVersion,mTh(d.nowMsec-d.loadMsec),d.connections.active,d.connections.reading,d.connections.writing,d.connections.waiting,d.connections.accepted,d.connections.handled,d.connections.requests,aPs.getValue("main.connections.requests",d.connections.requests),aHe("strong",d.sharedZones.name),bTh(d.sharedZones.maxSize),bTh(d.sharedZones.usedSize),d.sharedZones.usedNode]);a=aHe("tbody",aHe("tr",b[0]));f="{}{}".format(aHe("h2",vtsStatusVars.titles.main),aHe("table","{}{}".format(c,a)));f=aHe('div id="{}"'.format(vtsStatusVars.ids.main),f);return f}function templateServerZone(f,e,k,h){var m=0;var g="";var l="";for(var v in f){var r=f[v];var j="{}.{}.{}".format(k,e,v);var b="";var q="";var d=0;var u=0;var c=0;var t=0;b=(m++%2)?"odd":"";q=(e.indexOf("country")!=-1&&v.length==2)?'<img class="flag flag-{}" />'.format(v.toLowerCase()):"";g="{}{}".format(aHe("th","{}{}".format(q,v)),aHe("td",[(r.requestCounter+r.overCounts.maxIntegerSize*r.overCounts.requestCounter),aPs.getValue("{}.{}".format(j,"requestCounter"),r.requestCounter),mTh(r.requestMsec)]));for(var a in r.responses){d=r.responses[a]+r.overCounts.maxIntegerSize*r.overCounts[a];u+=d;g="{}{}".format(g,aHe("td",d));if(a=="5xx"){break}}g="{}{}".format(g,aHe("td",[u,bTh(r.outBytes+r.overCounts.maxIntegerSize*r.overCounts.outBytes),bTh(r.inBytes+r.overCounts.maxIntegerSize*r.overCounts.inBytes),bTh(aPs.getValue("{}.{}".format(j,"outBytes"),r.outBytes)),bTh(aPs.getValue("{}.{}".format(j,"inBytes"),r.inBytes))]));if(h){var p=0;for(var a in r.responses){if(p++<5){continue}c=(r.responses[a]+r.overCounts.maxIntegerSize*r.overCounts[a]);t+=c;g="{}{}".format(g,aHe("td",c))}g="{}{}".format(g,aHe("td",t))}l="{}{}".format(l,aHe('tr class="{}"'.format(b),g))}return l}function templateUpstreamZone(c,i,b){var e=0;var l="";var d="";while(e<c.length){var f=c[e];var k="{}.{}.{}".format(b,i,f.server);var j="";var g=0;var h=0;j=(e++%2)?"odd":"";l="{}{}".format(aHe("th",f.server),aHe("td",[sTh(f.backup,f.down),mTh(f.responseMsec),f.weight,f.maxFails,f.failTimeout,(f.requestCounter+f.overCounts.maxIntegerSize*f.overCounts.requestCounter),aPs.getValue("{}.{}".format(k,"requestCounter"),f.requestCounter),mTh(f.requestMsec)]));for(var a in f.responses){g=f.responses[a]+f.overCounts.maxIntegerSize*f.overCounts[a];h+=g;l="{}{}".format(l,aHe("td",g))}l="{}{}".format(l,aHe("td",[h,bTh(f.outBytes+f.overCounts.maxIntegerSize*f.overCounts.outBytes),bTh(f.inBytes+f.overCounts.maxIntegerSize*f.overCounts.inBytes),bTh(aPs.getValue("{}.{}".format(k,"outBytes"),f.outBytes)),bTh(aPs.getValue("{}.{}".format(k,"inBytes"),f.inBytes))]));d="{}{}".format(d,aHe('tr class="{}"'.format(j),l))}return d}function templateCacheZone(d,i,c){var f=0;var m="";var e="";for(var a in d){var g=d[a];var l="{}.{}.{}".format(c,i,a);var k="";var h=0;var j=0;k=(f++%2)?"odd":"";m="{}{}".format(aHe("th",a),aHe("td",[bTh(g.maxSize),bTh(g.usedSize),bTh(g.outBytes+g.overCounts.maxIntegerSize*g.overCounts.outBytes),bTh(g.inBytes+g.overCounts.maxIntegerSize*g.overCounts.inBytes),bTh(aPs.getValue("{}.{}".format(l,"outBytes"),g.outBytes)),bTh(aPs.getValue("{}.{}".format(l,"inBytes"),g.inBytes))]));for(var b in g.responses){h=g.responses[b]+g.overCounts.maxIntegerSize*g.overCounts[b];j+=h;m="{}{}".format(m,aHe("td",h))}m="{}{}".format(m,aHe("td",j));e="{}{}".format(e,aHe('tr class="{}"'.format(k),m))}return e}function haveCache(b){var a="*";if(typeof b.serverZones[a]=="undefined"){return true}return Object.keys(b.serverZones[a].responses).length>5?true:false}function template(e){aPs.refresh(e.nowMsec);var d="";var f="";var h="";var g="";var c=[];var a=true;d=templateMainZone(e);a=haveCache(e);h=templateServerHeader(a);c[0]=templateServerZone(e.serverZones,"server",vtsStatusVars.ids.server,a);g=aHe("tbody",c[0]);d="{}{}".format(d,aHe('div id="{}"'.format(vtsStatusVars.ids.server),"{}{}".format(aHe("h2",vtsStatusVars.titles.server),aHe("table","{}{}".format(h,g)))));if(vtsStatusVars.ids.filter in e){f="";for(var i in e.filterZones){var b=e.filterZones[i];h=templateServerHeader(a);c[0]=templateServerZone(b,i,vtsStatusVars.ids.filter,a);g=aHe("tbody",c[0]);f="{}{}{}".format(f,aHe("h3",i),aHe("table","{}{}".format(h,g)))}d="{}{}".format(d,aHe('div id="{}"'.format(vtsStatusVars.ids.filter),"{}{}".format(aHe("h2",vtsStatusVars.titles.filter),f)))}if(vtsStatusVars.ids.upstream in e){f="";for(var i in e.upstreamZones){var b=e.upstreamZones[i];h=templateUpstreamHeader();c[0]=templateUpstreamZone(b,i,vtsStatusVars.ids.upstream);g=aHe("tbody",c[0]);f="{}{}{}".format(f,aHe("h3",i),aHe("table","{}{}".format(h,g)))}d="{}{}".format(d,aHe('div id="{}"'.format(vtsStatusVars.ids.upstream),"{}{}".format(aHe("h2",vtsStatusVars.titles.upstream),f)))}if(vtsStatusVars.ids.cache in e){h=templateCacheHeader();c[0]=templateCacheZone(e.cacheZones,"cache",vtsStatusVars.ids.cache);g=aHe("tbody",c[0]);d="{}{}".format(d,aHe('div id="{}"'.format(vtsStatusVars.ids.cache),"{}{}".format(aHe("h2",vtsStatusVars.titles.cache),aHe("table","{}{}".format(h,g)))))}return d}function vtsGetData(){var a=document.getElementById("monitor");var b=new XMLHttpRequest;b.onload=function(){if(this.status!=200){return}a.innerHTML=template(JSON.parse(this.responseText))};b.open("GET",vtsStatusURI);b.send()}function vtsSetInterval(a){clearInterval(vtsUpdate);vtsUpdate=setInterval(vtsGetData,a)}document.getElementById("jsonUri").href=vtsStatusURI;vtsGetData();vtsSetInterval(vtsUpdateInterval);</script></body></html>
